{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "rjokes_languagemodel.ipynb",
      "version": "0.3.2",
      "provenance": [],
      "collapsed_sections": [
        "PPiVqJbLaa_U",
        "8zj1GE_eaa_a",
        "Dlo9jv1baa_6",
        "rZZ16hoYabAm"
      ],
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/gdoteof/neuralnet_stuff/blob/master/rjokes_languagemodel.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "metadata": {
        "id": "5XEc0V7daa-w",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# IMDB"
      ]
    },
    {
      "metadata": {
        "id": "qWCoU-usaeTO",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "  !curl https://course-v3.fast.ai/setup/colab | bash"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "DsjcWT8bN5Gm",
        "colab_type": "code",
        "outputId": "2896e02d-f442-4b48-8b11-c1b5e40fe42e",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 122
        }
      },
      "cell_type": "code",
      "source": [
        "from google.colab import drive\n",
        "drive.mount('/content/drive')"
      ],
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=email%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdocs.test%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.photos.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fpeopleapi.readonly&response_type=code\n",
            "\n",
            "Enter your authorization code:\n",
            "··········\n",
            "Mounted at /content/drive\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "dx7X7fAH0O1X",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "BASE='/content/drive/My Drive/ai/'"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "fFXK91tWXvcd",
        "colab_type": "code",
        "outputId": "74d81179-94cb-4fb0-d184-d9430d9bfa79",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 51
        }
      },
      "cell_type": "code",
      "source": [
        "!ls \"{BASE}\""
      ],
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "first_pass_joke.pth  models\t       rjokes_finetuned_encoder.pth\n",
            "joke_lm\t\t     reddit_jokes.csv  rjokes_finetunes.pth\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "EEl85-meaa-z",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "%reload_ext autoreload\n",
        "%autoreload 2\n",
        "%matplotlib inline"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "XzAzOTrsaa-3",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "import sys\n",
        "from fastai import *\n",
        "from fastai.text import *"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "rrAMmE62aa-9",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "#from google.colab import files\n",
        "#uploaded = files.upload()"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "449gfn1faa_L",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "PATH='.'\n",
        "df=pd.read_csv(f'{BASE}reddit_jokes.csv')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "sc-EkJvR1laA",
        "colab_type": "code",
        "outputId": "ee66c2c6-ea18-4698-9e20-c887efc0d671",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 173
        }
      },
      "cell_type": "code",
      "source": [
        "df.head().T"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>0</th>\n",
              "      <th>1</th>\n",
              "      <th>2</th>\n",
              "      <th>3</th>\n",
              "      <th>4</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>body</th>\n",
              "      <td>Now I have to say \"Leroy can you please paint ...</td>\n",
              "      <td>Pizza doesn't scream when you put it in the ov...</td>\n",
              "      <td>...and being there really helped me learn abou...</td>\n",
              "      <td>A Sunday school teacher is concerned that his ...</td>\n",
              "      <td>He got caught trying to sell the two books to ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>id</th>\n",
              "      <td>5tz52q</td>\n",
              "      <td>5tz4dd</td>\n",
              "      <td>5tz319</td>\n",
              "      <td>5tz2wj</td>\n",
              "      <td>5tz1pc</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>score</th>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>title</th>\n",
              "      <td>I hate how you cant even say black paint anymore</td>\n",
              "      <td>What's the difference between a Jew in Nazi Ge...</td>\n",
              "      <td>I recently went to America....</td>\n",
              "      <td>Brian raises his hand and says, “He’s in Heaven.”</td>\n",
              "      <td>You hear about the University book store worke...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                                                       0  \\\n",
              "body   Now I have to say \"Leroy can you please paint ...   \n",
              "id                                                5tz52q   \n",
              "score                                                  1   \n",
              "title   I hate how you cant even say black paint anymore   \n",
              "\n",
              "                                                       1  \\\n",
              "body   Pizza doesn't scream when you put it in the ov...   \n",
              "id                                                5tz4dd   \n",
              "score                                                  0   \n",
              "title  What's the difference between a Jew in Nazi Ge...   \n",
              "\n",
              "                                                       2  \\\n",
              "body   ...and being there really helped me learn abou...   \n",
              "id                                                5tz319   \n",
              "score                                                  0   \n",
              "title                     I recently went to America....   \n",
              "\n",
              "                                                       3  \\\n",
              "body   A Sunday school teacher is concerned that his ...   \n",
              "id                                                5tz2wj   \n",
              "score                                                  1   \n",
              "title  Brian raises his hand and says, “He’s in Heaven.”   \n",
              "\n",
              "                                                       4  \n",
              "body   He got caught trying to sell the two books to ...  \n",
              "id                                                5tz1pc  \n",
              "score                                                  0  \n",
              "title  You hear about the University book store worke...  "
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 15
        }
      ]
    },
    {
      "metadata": {
        "id": "cfsGk4yhbV_P",
        "colab_type": "code",
        "outputId": "65b56d0a-ef73-4740-d8e8-5af9018c57a1",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 204
        }
      },
      "cell_type": "code",
      "source": [
        "df['text'] = df['title'] + ' ZZZBODYZZZ ' + df['body']\n",
        "df.head().T\n"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>0</th>\n",
              "      <th>1</th>\n",
              "      <th>2</th>\n",
              "      <th>3</th>\n",
              "      <th>4</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>body</th>\n",
              "      <td>Now I have to say \"Leroy can you please paint ...</td>\n",
              "      <td>Pizza doesn't scream when you put it in the ov...</td>\n",
              "      <td>...and being there really helped me learn abou...</td>\n",
              "      <td>A Sunday school teacher is concerned that his ...</td>\n",
              "      <td>He got caught trying to sell the two books to ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>id</th>\n",
              "      <td>5tz52q</td>\n",
              "      <td>5tz4dd</td>\n",
              "      <td>5tz319</td>\n",
              "      <td>5tz2wj</td>\n",
              "      <td>5tz1pc</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>score</th>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>title</th>\n",
              "      <td>I hate how you cant even say black paint anymore</td>\n",
              "      <td>What's the difference between a Jew in Nazi Ge...</td>\n",
              "      <td>I recently went to America....</td>\n",
              "      <td>Brian raises his hand and says, “He’s in Heaven.”</td>\n",
              "      <td>You hear about the University book store worke...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>text</th>\n",
              "      <td>I hate how you cant even say black paint anymo...</td>\n",
              "      <td>What's the difference between a Jew in Nazi Ge...</td>\n",
              "      <td>I recently went to America.... ZZZBODYZZZ ...a...</td>\n",
              "      <td>Brian raises his hand and says, “He’s in Heave...</td>\n",
              "      <td>You hear about the University book store worke...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                                                       0  \\\n",
              "body   Now I have to say \"Leroy can you please paint ...   \n",
              "id                                                5tz52q   \n",
              "score                                                  1   \n",
              "title   I hate how you cant even say black paint anymore   \n",
              "text   I hate how you cant even say black paint anymo...   \n",
              "\n",
              "                                                       1  \\\n",
              "body   Pizza doesn't scream when you put it in the ov...   \n",
              "id                                                5tz4dd   \n",
              "score                                                  0   \n",
              "title  What's the difference between a Jew in Nazi Ge...   \n",
              "text   What's the difference between a Jew in Nazi Ge...   \n",
              "\n",
              "                                                       2  \\\n",
              "body   ...and being there really helped me learn abou...   \n",
              "id                                                5tz319   \n",
              "score                                                  0   \n",
              "title                     I recently went to America....   \n",
              "text   I recently went to America.... ZZZBODYZZZ ...a...   \n",
              "\n",
              "                                                       3  \\\n",
              "body   A Sunday school teacher is concerned that his ...   \n",
              "id                                                5tz2wj   \n",
              "score                                                  1   \n",
              "title  Brian raises his hand and says, “He’s in Heaven.”   \n",
              "text   Brian raises his hand and says, “He’s in Heave...   \n",
              "\n",
              "                                                       4  \n",
              "body   He got caught trying to sell the two books to ...  \n",
              "id                                                5tz1pc  \n",
              "score                                                  0  \n",
              "title  You hear about the University book store worke...  \n",
              "text   You hear about the University book store worke...  "
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 16
        }
      ]
    },
    {
      "metadata": {
        "id": "xWbBZkT2b7ek",
        "colab_type": "code",
        "outputId": "9d90c266-87ba-4e36-b6b5-19df6f04d3f1",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 111
        }
      },
      "cell_type": "code",
      "source": [
        "del df['body']\n",
        "del df['title']\n",
        "del df['id']\n",
        "\n",
        "df.head().T"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>0</th>\n",
              "      <th>1</th>\n",
              "      <th>2</th>\n",
              "      <th>3</th>\n",
              "      <th>4</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>score</th>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>text</th>\n",
              "      <td>I hate how you cant even say black paint anymo...</td>\n",
              "      <td>What's the difference between a Jew in Nazi Ge...</td>\n",
              "      <td>I recently went to America.... ZZZBODYZZZ ...a...</td>\n",
              "      <td>Brian raises his hand and says, “He’s in Heave...</td>\n",
              "      <td>You hear about the University book store worke...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                                                       0  \\\n",
              "score                                                  1   \n",
              "text   I hate how you cant even say black paint anymo...   \n",
              "\n",
              "                                                       1  \\\n",
              "score                                                  0   \n",
              "text   What's the difference between a Jew in Nazi Ge...   \n",
              "\n",
              "                                                       2  \\\n",
              "score                                                  0   \n",
              "text   I recently went to America.... ZZZBODYZZZ ...a...   \n",
              "\n",
              "                                                       3  \\\n",
              "score                                                  1   \n",
              "text   Brian raises his hand and says, “He’s in Heave...   \n",
              "\n",
              "                                                       4  \n",
              "score                                                  0  \n",
              "text   You hear about the University book store worke...  "
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 17
        }
      ]
    },
    {
      "metadata": {
        "id": "atjR3fjIcsOf",
        "colab_type": "code",
        "outputId": "a26ae0fe-6027-4e89-b780-136994a60780",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 173
        }
      },
      "cell_type": "code",
      "source": [
        "df['label'] = 'joke'\n",
        "df['is_valid'] = False\n",
        "df.head().T"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>0</th>\n",
              "      <th>1</th>\n",
              "      <th>2</th>\n",
              "      <th>3</th>\n",
              "      <th>4</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>score</th>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>text</th>\n",
              "      <td>I hate how you cant even say black paint anymo...</td>\n",
              "      <td>What's the difference between a Jew in Nazi Ge...</td>\n",
              "      <td>I recently went to America.... ZZZBODYZZZ ...a...</td>\n",
              "      <td>Brian raises his hand and says, “He’s in Heave...</td>\n",
              "      <td>You hear about the University book store worke...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>label</th>\n",
              "      <td>joke</td>\n",
              "      <td>joke</td>\n",
              "      <td>joke</td>\n",
              "      <td>joke</td>\n",
              "      <td>joke</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>is_valid</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                                                          0  \\\n",
              "score                                                     1   \n",
              "text      I hate how you cant even say black paint anymo...   \n",
              "label                                                  joke   \n",
              "is_valid                                              False   \n",
              "\n",
              "                                                          1  \\\n",
              "score                                                     0   \n",
              "text      What's the difference between a Jew in Nazi Ge...   \n",
              "label                                                  joke   \n",
              "is_valid                                              False   \n",
              "\n",
              "                                                          2  \\\n",
              "score                                                     0   \n",
              "text      I recently went to America.... ZZZBODYZZZ ...a...   \n",
              "label                                                  joke   \n",
              "is_valid                                              False   \n",
              "\n",
              "                                                          3  \\\n",
              "score                                                     1   \n",
              "text      Brian raises his hand and says, “He’s in Heave...   \n",
              "label                                                  joke   \n",
              "is_valid                                              False   \n",
              "\n",
              "                                                          4  \n",
              "score                                                     0  \n",
              "text      You hear about the University book store worke...  \n",
              "label                                                  joke  \n",
              "is_valid                                              False  "
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 18
        }
      ]
    },
    {
      "metadata": {
        "id": "twSTrTWQcziA",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "df['text'] = 'ZZZBEGINZZZ ' + df['text'] + ' ZZZENDZZZ'"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "h1uAssZC3WFz",
        "colab_type": "code",
        "outputId": "74f7a885-c068-47a0-8fa6-f6b10ce3dc9e",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 173
        }
      },
      "cell_type": "code",
      "source": [
        "df.head().T"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>0</th>\n",
              "      <th>1</th>\n",
              "      <th>2</th>\n",
              "      <th>3</th>\n",
              "      <th>4</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>score</th>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>0</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>text</th>\n",
              "      <td>ZZZBEGINZZZ I hate how you cant even say black...</td>\n",
              "      <td>ZZZBEGINZZZ What's the difference between a Je...</td>\n",
              "      <td>ZZZBEGINZZZ I recently went to America.... ZZZ...</td>\n",
              "      <td>ZZZBEGINZZZ Brian raises his hand and says, “H...</td>\n",
              "      <td>ZZZBEGINZZZ You hear about the University book...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>label</th>\n",
              "      <td>joke</td>\n",
              "      <td>joke</td>\n",
              "      <td>joke</td>\n",
              "      <td>joke</td>\n",
              "      <td>joke</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>is_valid</th>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "      <td>False</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "                                                          0  \\\n",
              "score                                                     1   \n",
              "text      ZZZBEGINZZZ I hate how you cant even say black...   \n",
              "label                                                  joke   \n",
              "is_valid                                              False   \n",
              "\n",
              "                                                          1  \\\n",
              "score                                                     0   \n",
              "text      ZZZBEGINZZZ What's the difference between a Je...   \n",
              "label                                                  joke   \n",
              "is_valid                                              False   \n",
              "\n",
              "                                                          2  \\\n",
              "score                                                     0   \n",
              "text      ZZZBEGINZZZ I recently went to America.... ZZZ...   \n",
              "label                                                  joke   \n",
              "is_valid                                              False   \n",
              "\n",
              "                                                          3  \\\n",
              "score                                                     1   \n",
              "text      ZZZBEGINZZZ Brian raises his hand and says, “H...   \n",
              "label                                                  joke   \n",
              "is_valid                                              False   \n",
              "\n",
              "                                                          4  \n",
              "score                                                     0  \n",
              "text      ZZZBEGINZZZ You hear about the University book...  \n",
              "label                                                  joke  \n",
              "is_valid                                              False  "
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 32
        }
      ]
    },
    {
      "metadata": {
        "id": "KA769_XV3hxt",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "del df['score']"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "uWeZgpwSLkIc",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "train, validate, test = np.split(df.sample(frac=1), [int(.7*len(df)), int(.85*len(df))])\n"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "EVQjw-e_4NDF",
        "colab_type": "code",
        "outputId": "dcab7b0a-acf5-4607-8887-c0b1da56e451",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 68
        }
      },
      "cell_type": "code",
      "source": [
        "display(train.shape,validate.shape,test.shape)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "(136187, 3)"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "(29183, 3)"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "(29183, 3)"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "s_EIlqWt5d6Y",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "train = train.dropna()\n",
        "validate = validate.dropna()\n",
        "test = test.dropna()"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "DFoPRiu06nI6",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        ""
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "4KEYTnDF6cFK",
        "colab_type": "code",
        "outputId": "4e4cd349-7bb0-44a6-a487-583de7e7ddf7",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 68
        }
      },
      "cell_type": "code",
      "source": [
        "display(train.shape,data_lm = TextLMDataBunch.load(path, 'tmp_lm', bs=bs)\n",
        "validate.shape,test.shape)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "(133294, 3)"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "(28563, 3)"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "(28591, 3)"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "QUmOFB22k2eQ",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "joke_dm = TextDataBunch.from_df(BASE,train_df=train,valid_df=validate,test_df=test, text_cols=['text'], label_cols=['label'])"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "Gh6swEDn7bXK",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "joke_lm = joke_dm\n",
        "joke_lm.save('joke_lm')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "mOxy82eDkTII",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "data_lm = TextLMDataBunch.load(BASE, 'joke_lm')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "pooGYAgnmexq",
        "colab_type": "code",
        "outputId": "d213daa8-979b-4dea-a68c-6d3ff0ce4a4c",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 471
        }
      },
      "cell_type": "code",
      "source": [
        "data_lm.show_batch()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "<table>  <col width='5%'>  <col width='95%'>  <tr>\n",
              "    <th>idx</th>\n",
              "    <th>text</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "    <th>0</th>\n",
              "    <th>xxbos xxfld 1 xxup zzzbeginzzz a radio station in ireland is taking calls to find a word that is commonly used but is n't in the dictionary yet ... xxup zzzbodyzzz the first caller gets through . \\n\\n \" hello ! what word do you think should be in the dictionary ? \" \\n\\n \" goan ! \" \\n\\n \" goan ? can you use it in a sentence ? \" \\n\\n \" yeah , go'an fuck yerself ! \" the caller then begins laughing until the station can cut off his call . \\n\\n</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "    <th>1</th>\n",
              "    <th>not a lion , that 's a giraffe . \" xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz i do n't understand why so many people in the south have bad teeth xxup zzzbodyzzz when they try their best to keep everything else straight and white . xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz deli meats xxup zzzbodyzzz i knew a guy who was addicted to deli meats . he just could n't quit cold turkey . xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz how many of my ex - wife does it take to screw</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "    <th>2</th>\n",
              "    <th>off . xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz what joke has recieved the most upvotes on reddit ? xxup zzzbodyzzz redditors . xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz how many freudian analysts does it take to screw in a lightbulb ? xxup zzzbodyzzz 2 . one to screw it in and the other to hold the penis --- ladder ! ! \\n i meant ladder ... xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz what did the customer ask the prostitute when they got to the hotel ? \\n \\n  xxup zzzbodyzzz do you come</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "    <th>3</th>\n",
              "    <th>a sperm bank with a shot gun . \\n\\n \" open the fucking safe ! \" he yells at the girl behind the counter . \\n\\n \" but we 're not a real bank \" replies the girl . \" this is a sperm bank , we do n't hold money \" . \\n\\n \" do n't argue just open the safe or i 'll blow your fucking head off ! \" she obliges and opens the safe door . \\n\\n \" take one of the bottles and drink it ! \" \\n\\n \" but</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "    <th>4</th>\n",
              "    <th>hundred dollar bill ? \\n\\n well , i do n't have the cash on me to break a hundred . but i did break your mother last night . xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz what do you call an ugly dinosaur ? xxup zzzbodyzzz an xxunk xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz my balloons xxup zzzbodyzzz i 'm a newly graduated entrepreneur breaking into the party xxunk game . i bought a ton of balloons a year ago for 99 cents each . in order to make a profit , how much</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "    <th>5</th>\n",
              "    <th>zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz it 's nice to see women who do n't lose their figures as they grow older . xxup zzzbodyzzz they take such a long time to paint and warhammer is expensive enough as it is . xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz what did the deaf bug order at the bar ? xxup zzzbodyzzz a bee - ear xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz the irish virgin xxup zzzbodyzzz in a tiny village on the west coast of ireland lived an old lady , a virgin and</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "    <th>6</th>\n",
              "    <th>i do n't see what the big fuss is about this budgie jumping > ( \" - the second man says \" i agree , this free fall parrot shooting is n't all that its cracked up to be either > ( \" xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz a guy is running low on gas xxup zzzbodyzzz so he stops at a gas station with a sign that says : \\n\\n \" if you fill up , you have the chance to free sex ! \" \\n\\n it fills the tank to the</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "    <th>7</th>\n",
              "    <th>dog eating jokes and he makes the point to tell me that his dogs were family . \\n\\n if anyone tried to hurt his 3 dogs he would shoot them . \\n\\n i asked him if he named them breakfast , lunch , and dinner . xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz a helicopter was flying around above seattle ... xxup zzzbodyzzz a helicopter was flying around above seattle when an electrical malfunction disabled all of the aircraft 's electronic navigation and communications equipment . \\n\\n due to the clouds and haze , the</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "    <th>8</th>\n",
              "    <th>1 xxup zzzbeginzzz what type of weed are you allowed to smoke during ramadan ? xxup zzzbodyzzz xxunk \\n  xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz how do you silence an italian ? xxup zzzbodyzzz cut off his hands xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz what 's the worst part about being a black jew xxup zzzbodyzzz you have to stand in the back of the oven xxup zzzendzzz xxbos xxfld 1 xxup zzzbeginzzz a man calls in to work sick on a friday xxup zzzbodyzzz his boss asks him , \" why what</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "    <th>9</th>\n",
              "    <th>i have been with a woman of poor moral fiber . \" \\n\\n priest : \" that 's sad to hear young man ... i must ask ... was it jenny armstrong ? \" \\n young man : \" i can not say father . \" \\n priest : \" was it sarah smith ? \" \\n young man : \" i will not say , father . \" \\n priest : \" it must have been michelle xxunk . \" \\n young man : \" father , i will not say . \" \\n</th>\n",
              "  </tr>\n",
              "</table>\n"
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "hryIQI1_-qNX",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "Can we put a path below to the google drive?  Probably"
      ]
    },
    {
      "metadata": {
        "id": "iXINLz1X955w",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "learn = language_model_learner(data_lm, pretrained_model=URLs.WT103, drop_mult=0.3)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "0jlhuTigmnbr",
        "colab_type": "code",
        "outputId": "cd6794e0-957b-4a74-b101-6bd931abd69f",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 109
        }
      },
      "cell_type": "code",
      "source": [
        "\n",
        "learn.lr_find()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "\n",
              "    <div>\n",
              "        <style>\n",
              "        \t/* Turns off some styling */\n",
              "        \tprogress {\n",
              "\n",
              "            \t/* gets rid of default border in Firefox and Opera. */\n",
              "            \tborder: none;\n",
              "\n",
              "            \t/* Needs to be in here for Safari polyfill so background images work as expected. */\n",
              "            \tbackground-size: auto;\n",
              "            }\n",
              "\n",
              "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
              "                background: #F44336;\n",
              "            }\n",
              "        </style>\n",
              "      <progress value='0' class='' max='1', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      0.00% [0/1 00:00<00:00]\n",
              "    </div>\n",
              "    \n",
              "<table style='width:300px; margin-bottom:10px'>\n",
              "  <tr>\n",
              "    <th>epoch</th>\n",
              "    <th>train_loss</th>\n",
              "    <th>valid_loss</th>\n",
              "    <th>accuracy</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "\n",
              "  </tr>\n",
              "</table>\n",
              "\n",
              "\n",
              "    <div>\n",
              "        <style>\n",
              "        \t/* Turns off some styling */\n",
              "        \tprogress {\n",
              "\n",
              "            \t/* gets rid of default border in Firefox and Opera. */\n",
              "            \tborder: none;\n",
              "\n",
              "            \t/* Needs to be in here for Safari polyfill so background images work as expected. */\n",
              "            \tbackground-size: auto;\n",
              "            }\n",
              "\n",
              "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
              "                background: #F44336;\n",
              "            }\n",
              "        </style>\n",
              "      <progress value='0' class='progress-bar-interrupted' max='2070', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      Interrupted\n",
              "    </div>\n",
              "    "
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "EF5CBFle-_TN",
        "colab_type": "code",
        "outputId": "7afbd36c-4707-40f6-ccab-cd3943cee7a9",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 282
        }
      },
      "cell_type": "code",
      "source": [
        "learn.recorder.plot()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fa1609276d8>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "DdJYv4Im_hpF",
        "colab_type": "code",
        "outputId": "6f450a53-e35f-4baa-fd98-af8ab4168dfd",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 109
        }
      },
      "cell_type": "code",
      "source": [
        "learn_no_pretrain = language_model_learner(data_lm, drop_mult=0.3)\n",
        "learn.lr_find()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "\n",
              "    <div>\n",
              "        <style>\n",
              "        \t/* Turns off some styling */\n",
              "        \tprogress {\n",
              "\n",
              "            \t/* gets rid of default border in Firefox and Opera. */\n",
              "            \tborder: none;\n",
              "\n",
              "            \t/* Needs to be in here for Safari polyfill so background images work as expected. */\n",
              "            \tbackground-size: auto;\n",
              "            }\n",
              "\n",
              "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
              "                background: #F44336;\n",
              "            }\n",
              "        </style>\n",
              "      <progress value='0' class='' max='1', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      0.00% [0/1 00:00<00:00]\n",
              "    </div>\n",
              "    \n",
              "<table style='width:300px; margin-bottom:10px'>\n",
              "  <tr>\n",
              "    <th>epoch</th>\n",
              "    <th>train_loss</th>\n",
              "    <th>valid_loss</th>\n",
              "    <th>accuracy</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "\n",
              "  </tr>\n",
              "</table>\n",
              "\n",
              "\n",
              "    <div>\n",
              "        <style>\n",
              "        \t/* Turns off some styling */\n",
              "        \tprogress {\n",
              "\n",
              "            \t/* gets rid of default border in Firefox and Opera. */\n",
              "            \tborder: none;\n",
              "\n",
              "            \t/* Needs to be in here for Safari polyfill so background images work as expected. */\n",
              "            \tbackground-size: auto;\n",
              "            }\n",
              "\n",
              "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
              "                background: #F44336;\n",
              "            }\n",
              "        </style>\n",
              "      <progress value='0' class='progress-bar-interrupted' max='2070', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      Interrupted\n",
              "    </div>\n",
              "    "
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "ADRTY2xK_zSA",
        "colab_type": "code",
        "outputId": "602c18c1-e322-4dd5-ee9b-c4b0f94c17a5",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 279
        }
      },
      "cell_type": "code",
      "source": [
        "learn.recorder.plot()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fa160927ac8>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "uDZ7WlzzAQSS",
        "colab_type": "code",
        "outputId": "17ea18af-5d43-4edf-a364-5888c24de359",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 109
        }
      },
      "cell_type": "code",
      "source": [
        "learn_no_pretrain = language_model_learner(data_lm, drop_mult=0.3,emb_sz=600)\n",
        "learn_no_pretrain.lr_find()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "\n",
              "    <div>\n",
              "        <style>\n",
              "        \t/* Turns off some styling */\n",
              "        \tprogress {\n",
              "\n",
              "            \t/* gets rid of default border in Firefox and Opera. */\n",
              "            \tborder: none;\n",
              "\n",
              "            \t/* Needs to be in here for Safari polyfill so background images work as expected. */\n",
              "            \tbackground-size: auto;\n",
              "            }\n",
              "\n",
              "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
              "                background: #F44336;\n",
              "            }\n",
              "        </style>\n",
              "      <progress value='0' class='' max='1', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      0.00% [0/1 00:00<00:00]\n",
              "    </div>\n",
              "    \n",
              "<table style='width:300px; margin-bottom:10px'>\n",
              "  <tr>\n",
              "    <th>epoch</th>\n",
              "    <th>train_loss</th>\n",
              "    <th>valid_loss</th>\n",
              "    <th>accuracy</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "\n",
              "  </tr>\n",
              "</table>\n",
              "\n",
              "\n",
              "    <div>\n",
              "        <style>\n",
              "        \t/* Turns off some styling */\n",
              "        \tprogress {\n",
              "\n",
              "            \t/* gets rid of default border in Firefox and Opera. */\n",
              "            \tborder: none;\n",
              "\n",
              "            \t/* Needs to be in here for Safari polyfill so background images work as expected. */\n",
              "            \tbackground-size: auto;\n",
              "            }\n",
              "\n",
              "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
              "                background: #F44336;\n",
              "            }\n",
              "        </style>\n",
              "      <progress value='0' class='progress-bar-interrupted' max='2070', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      Interrupted\n",
              "    </div>\n",
              "    "
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "wMWaXhQwAdbS",
        "colab_type": "code",
        "outputId": "34262730-0b80-42a9-d334-5b968fa2642f",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 279
        }
      },
      "cell_type": "code",
      "source": [
        "learn_no_pretrain.recorder.plot()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fa169251320>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "MYt-yzRrA4__",
        "colab_type": "code",
        "outputId": "bf3686a0-48a3-444d-9d92-58f8677b0a9a",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 109
        }
      },
      "cell_type": "code",
      "source": [
        "fatty = language_model_learner(data_lm, drop_mult=0.3,emb_sz=1000)\n",
        "fatty.lr_find()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "\n",
              "    <div>\n",
              "        <style>\n",
              "        \t/* Turns off some styling */\n",
              "        \tprogress {\n",
              "\n",
              "            \t/* gets rid of default border in Firefox and Opera. */\n",
              "            \tborder: none;\n",
              "\n",
              "            \t/* Needs to be in here for Safari polyfill so background images work as expected. */\n",
              "            \tbackground-size: auto;\n",
              "            }\n",
              "\n",
              "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
              "                background: #F44336;\n",
              "            }\n",
              "        </style>\n",
              "      <progress value='0' class='' max='1', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      0.00% [0/1 00:00<00:00]\n",
              "    </div>\n",
              "    \n",
              "<table style='width:300px; margin-bottom:10px'>\n",
              "  <tr>\n",
              "    <th>epoch</th>\n",
              "    <th>train_loss</th>\n",
              "    <th>valid_loss</th>\n",
              "    <th>accuracy</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "\n",
              "  </tr>\n",
              "</table>\n",
              "\n",
              "\n",
              "    <div>\n",
              "        <style>\n",
              "        \t/* Turns off some styling */\n",
              "        \tprogress {\n",
              "\n",
              "            \t/* gets rid of default border in Firefox and Opera. */\n",
              "            \tborder: none;\n",
              "\n",
              "            \t/* Needs to be in here for Safari polyfill so background images work as expected. */\n",
              "            \tbackground-size: auto;\n",
              "            }\n",
              "\n",
              "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
              "                background: #F44336;\n",
              "            }\n",
              "        </style>\n",
              "      <progress value='0' class='progress-bar-interrupted' max='2070', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      Interrupted\n",
              "    </div>\n",
              "    "
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "ZczwcMZbBHb9",
        "colab_type": "code",
        "outputId": "285583c4-cd59-4204-fc2c-cacb15022f61",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 279
        }
      },
      "cell_type": "code",
      "source": [
        "fatty.recorder.plot()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\noEIqVB8SrwAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fa16766d4a8>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "5gsZnlTUCJnc",
        "colab_type": "code",
        "outputId": "6f94f326-831a-4178-a05c-c6f7a83ba141",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 85
        }
      },
      "cell_type": "code",
      "source": [
        "learn = fatty\n",
        "\n",
        "learn.fit_one_cycle(1, 1e-2, moms=(0.8,0.7))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Total time: 35:44\n",
            "epoch  train_loss  valid_loss  accuracy\n",
            "1      3.445668    3.366107    0.401342  (35:44)\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "Ns-82dF3CSV2",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "learn.save(f'{BASE}rjokesfirstepoch')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "y1S1pSYgKun7",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "#learn.load seems weird but works?"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "xrm_xbXzLYDU",
        "colab_type": "code",
        "outputId": "8a91250c-515a-4af2-f5d6-e8727ac1f1d0",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 88
        }
      },
      "cell_type": "code",
      "source": [
        "learn.predict(\"What do you call\", n_words=250)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Total time: 00:26\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "\"What do you call the gorilla , the hair - dressed in charge of course he sees the xxup wins . when you ca nt trust a minor , but do n't even worse than a traditional rice xxup ceo of course from the standard player left suddenly whitney bieber . \\n to buy one of the heck how do n't touch the 1940s youth character ? y - show up and on your door or something that he decided that involves our couples and rear door . then fly over there will be able to the same mammal washer of course you know what i heard this wired control of course you may be thirsty food and they 're whoo 's all day ago , pointy corn . \\n\\n suddenly an experiment ? from my martian boy 's big reasons they were both of course would do n't pass people who 's your mistress 's not much better than * c ' shake at the plane trip to the specialist thought about 40 or something like , but one of course not wanting to send attention about vomit , he 's convinced on our favorite american book joke ? ! ! \\n\\n the amazing florida hippie salad . we willies , therefore , annoyed by the united states that might be refreshed . \\n incompetence commited her hook burst toward her skirts . xxup dom 1930s to keep on her body grows and seemed to which showed up the next to spend hour\""
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 90
        }
      ]
    },
    {
      "metadata": {
        "id": "0z76ojxZLgKR",
        "colab_type": "code",
        "outputId": "50335a90-4f3d-4adc-ba6e-b6cc6d0c2062",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 88
        }
      },
      "cell_type": "code",
      "source": [
        "learn.predict(\"xxup zzzbeginzzz xxup what do you call\", n_words=250)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Total time: 00:26\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "\"xxup zzzbeginzzz xxup what do you call them to pick up to be penniless . \\n reply : \\n looking for deals on the religion and prevents hide under stripes itself on stage please come out of course . killed like god rascist announced and the cold leg and then impress him and beautiful women get out of course . \\n\\n  xxup styles xxup tsa war cleaner of course . the biggest handicap do you know how great news card . genie accepts . \\n\\n edit : my girlfriend . xxup hiv . only twenty degrees of course we can not to do nt even more than babies are good news and the baboon usain bolt on this morning cost a few years after finishing new pukes in a little brother superior , but the time ago throughout the church tangent - slur and the salon at the world team caused regional arts - set ' fuck yourself out of course ... \\n\\n & both overlooking the fictional games . \\n\\n an electrician ... < + 27 - dressed on the funniest joke about the vacuum cleaner syndrome . suggestively and mountains on the path of course came out of course ! ! ! \\n\\n\\n\\n\\n\\n  xxup tv understands if you see who comes to get in the public romps has it used alcohol editor . that means that i just imagine you could not knowing what else sticks a bit of course feels better answer : http : do you bloody identifying your age of course ?\""
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 93
        }
      ]
    },
    {
      "metadata": {
        "id": "wQR5qOQbMFJX",
        "colab_type": "code",
        "outputId": "2ee6ef71-8891-47be-d0cc-e092d972dab6",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "cell_type": "code",
      "source": [
        "len(data_lm.vocab.itos)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "32806"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 101
        }
      ]
    },
    {
      "metadata": {
        "id": "daGed6A4M4pO",
        "colab_type": "code",
        "outputId": "4e43d4f8-d1b7-4093-9f47-02ffea88290e",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 109
        }
      },
      "cell_type": "code",
      "source": [
        "learn.lr_find()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "\n",
              "    <div>\n",
              "        <style>\n",
              "        \t/* Turns off some styling */\n",
              "        \tprogress {\n",
              "\n",
              "            \t/* gets rid of default border in Firefox and Opera. */\n",
              "            \tborder: none;\n",
              "\n",
              "            \t/* Needs to be in here for Safari polyfill so background images work as expected. */\n",
              "            \tbackground-size: auto;\n",
              "            }\n",
              "\n",
              "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
              "                background: #F44336;\n",
              "            }\n",
              "        </style>\n",
              "      <progress value='0' class='' max='1', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      0.00% [0/1 00:00<00:00]\n",
              "    </div>\n",
              "    \n",
              "<table style='width:300px; margin-bottom:10px'>\n",
              "  <tr>\n",
              "    <th>epoch</th>\n",
              "    <th>train_loss</th>\n",
              "    <th>valid_loss</th>\n",
              "    <th>accuracy</th>\n",
              "  </tr>\n",
              "  <tr>\n",
              "\n",
              "  </tr>\n",
              "</table>\n",
              "\n",
              "\n",
              "    <div>\n",
              "        <style>\n",
              "        \t/* Turns off some styling */\n",
              "        \tprogress {\n",
              "\n",
              "            \t/* gets rid of default border in Firefox and Opera. */\n",
              "            \tborder: none;\n",
              "\n",
              "            \t/* Needs to be in here for Safari polyfill so background images work as expected. */\n",
              "            \tbackground-size: auto;\n",
              "            }\n",
              "\n",
              "            .progress-bar-interrupted, .progress-bar-interrupted::-webkit-progress-bar {\n",
              "                background: #F44336;\n",
              "            }\n",
              "        </style>\n",
              "      <progress value='0' class='progress-bar-interrupted' max='2070', style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
              "      Interrupted\n",
              "    </div>\n",
              "    "
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "LR Finder is complete, type {learner_name}.recorder.plot() to see the graph.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "ogasi69ANo9L",
        "colab_type": "code",
        "outputId": "5886d2a5-146d-4590-9167-395b0655a4f8",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 280
        }
      },
      "cell_type": "code",
      "source": [
        "learn.recorder.plot()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<matplotlib.figure.Figure at 0x7fa161c434e0>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "G0pAsjPqOAL1",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "learn.lr_find(start_lr=1e-8,end_lr=1e-3)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "colab_type": "code",
        "id": "xUErd-60OjZm",
        "outputId": "9e77c1d3-d7bd-44e2-b898-7c006d5886ed",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 85
        }
      },
      "cell_type": "code",
      "source": [
        "learn.unfreeze()\n",
        "learn.fit_one_cycle(1, 1e-5/2, moms=(0.8,0.7))"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Total time: 35:40\n",
            "epoch  train_loss  valid_loss  accuracy\n",
            "1      3.274413    3.363138    0.401792  (35:40)\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "aHetPGxiOuMh",
        "colab_type": "code",
        "outputId": "4e8980d5-220d-40ab-989d-0d4ba6aa3fc7",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 88
        }
      },
      "cell_type": "code",
      "source": [
        "learn.predict(\"walks into\", n_words=250)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Total time: 00:27\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "'walks into a refried parliament has to see someone cares about 15 degree beckons himself around texas citizen and patches of these penguins fourth grade workers that means that way to keep him . \\n i am i \\'m - skier prague . in a dozen ducks ? sorry , in case of course . you could be able to which guy ’s favourite event telephone clubs now he did n\\'t perform six inches of course of course , mr. no matter about 10 % of course . xxup irs minister \\'s been incidents ! give us . it is so many criminals would be excited he replies : \\n edit : / r - ups \\n\\n so fast in case on the laboratory . shawn , after 5 meters to demonstrate when he noticed that last night after the police officer raised up for lunch hard work with a special words like the poor dildo . \\n\\n 1 million pounds on stage ! ! \\n\\n\\n the pharaoh \\'s been drinking baseball bill \\'s be really wants to see slip of course it \\'s extremely advanced should have to sell to get circumcised as well , still a throne to a goose pounds of the weekend . \\n\\n \" xxup hr hope she wished to keep known by your embraced him from that iphone paper carnal girls start laughing hysterically . wow ! ! ! xxup id \\'s best friend . \\r xxup fbi branches of nature of course . \\n  xxup'"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 107
        }
      ]
    },
    {
      "metadata": {
        "id": "_RZdkXcoXC92",
        "colab_type": "code",
        "outputId": "7e2e759e-e19f-4a19-d5ed-0385271f13f6",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 68
        }
      },
      "cell_type": "code",
      "source": [
        "learn.predict(\"A blonde\", n_words=42)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Total time: 00:03\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "\"A blonde cleveland ( best breakfast for 2000 degrees , me : 8 minute - less than 15 ' l. whack . \\n\\n my mama 's 10 . \\n\\n 1 . xxup zzzendzzz xxbos xxfld 1 million women and an old macdonald lector wager\""
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 108
        }
      ]
    },
    {
      "metadata": {
        "id": "MNJ7J1WgX0Ep",
        "colab_type": "code",
        "outputId": "d95a5253-848b-4293-ac33-68495938b38a",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 88
        }
      },
      "cell_type": "code",
      "source": [
        "learn.predict(\"A blonde\", n_words=42)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Total time: 00:03\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "\"A blonde age of course developed reverse israel is a o'reilly lewinsky ? xxup walks into a glass of course of course hall needs golden knows where you can not wanting to get off in the boat march of course was a leaf missing\""
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 109
        }
      ]
    },
    {
      "metadata": {
        "id": "70kuSyf9X5vA",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "learn.save(f'{BASE}rjokes_finetunes')\n",
        "learn.save_encoder(f'{BASE}rjokes_finetuned_encoder')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "bBSQqF3sYMI7",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 51
        },
        "outputId": "442f983d-c411-4c6e-ba29-f45c7575adee"
      },
      "cell_type": "code",
      "source": [
        "!ls \"{BASE}\""
      ],
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "first_pass_joke.pth  models\t       rjokes_finetuned_encoder.pth\n",
            "joke_lm\t\t     reddit_jokes.csv  rjokes_finetunes.pth\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "Hm-3oDIudqB6",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 282
        },
        "outputId": "08abeed5-2d79-49de-af00-011d4cb7786f"
      },
      "cell_type": "code",
      "source": [
        "learn = RNNLearner.load(None, name=f'{BASE}rjokes_finetunes')"
      ],
      "execution_count": 16,
      "outputs": [
        {
          "output_type": "error",
          "ename": "AttributeError",
          "evalue": "ignored",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-16-67cc39a594c5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mlearn\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mRNNLearner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34mf'{BASE}rjokes_finetunes'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
            "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/fastai/basic_train.py\u001b[0m in \u001b[0;36mload\u001b[0;34m(self, name, device)\u001b[0m\n\u001b[1;32m    201\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mPathOrStr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdevice\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    202\u001b[0m         \u001b[0;34m\"Load model `name` from `self.model_dir` using `device`, defaulting to `self.data.device`.\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 203\u001b[0;31m         \u001b[0;32mif\u001b[0m \u001b[0mdevice\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mdevice\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    204\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_state_dict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtorch\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel_dir\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;34mf'{name}.pth'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmap_location\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdevice\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    205\u001b[0m         \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mAttributeError\u001b[0m: 'NoneType' object has no attribute 'data'"
          ]
        }
      ]
    },
    {
      "metadata": {
        "id": "ZPJhOUjheAfz",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "learn = language_model_learner(data_lm, drop_mult=0.3,emb_sz=1000)\n",
        "learn.load(name=f'{BASE}rjokes_finetunes')\n",
        "learn.load_encoder(name=f'{BASE}rjokes_finetuned_encoder')"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "0THPEacGe6ye",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 88
        },
        "outputId": "e94cec34-dbf8-42a1-f5dd-7ae9c6d067f9"
      },
      "cell_type": "code",
      "source": [
        "learn.predict(\"geoff is\", n_words=50)"
      ],
      "execution_count": 20,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Total time: 00:03\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "\"geoff is a tiny guy from last week ago the threat did n't die , tampa classifieds in really strange uniform , and the band insurance course would hurt him , the next door between his ex - up with all day and just kidding ... tornado martinus dave , but next\""
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 20
        }
      ]
    },
    {
      "metadata": {
        "id": "tI4ld8kje_s_",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 51
        },
        "outputId": "2336257a-bf05-44da-fd2f-55c6a3f377f5"
      },
      "cell_type": "code",
      "source": [
        "test_cap = []\n",
        "for _ in range(5):\n",
        "  test_cap.append(learn.predict(\"geoff is\", n_words=15))"
      ],
      "execution_count": 21,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Total time: 00:01\n",
            "\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "e6_4OPzbfe6r",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 102
        },
        "outputId": "ccbf506b-1bdd-449c-d13f-abf3e875b09b"
      },
      "cell_type": "code",
      "source": [
        "test_cap"
      ],
      "execution_count": 22,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[\"geoff is really mean what happened to keep her boyfriend 's mine . \\n\\n * ps :\",\n",
              " 'geoff is later , but what would be careful form of course in utah type of colored',\n",
              " 'geoff is the bus driver brings up , too hard and infuriated him a school boy -',\n",
              " \"geoff is n't go ahead of course when we do n't wash on the particles . \\n\\n\",\n",
              " \"geoff is n't realize that is so funny beings are simple torture up early evening today ...\"]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 22
        }
      ]
    },
    {
      "metadata": {
        "id": "bCZSbEilfhVd",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "def writefile(item, filename=\"test.txt\"):\n",
        "  with open(f'{BASE}jokeout/{filename}', 'w') as f:\n",
        "          f.write(\"%s\" % item)"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "qlXMIKIbgOEV",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "writefile([1,2], \"geoffwwashere.txt\")"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "Aan39O5VgVbE",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 836
        },
        "outputId": "5f15501e-0c52-41c8-a219-620fa69160c4"
      },
      "cell_type": "code",
      "source": [
        "for j in range (10):\n",
        "  new = learn.predict(\"xxup zzzbeginzzz\", n_words=1000)\n",
        "  print(new)\n",
        "  writefile(new, filename=f'jokes_long_{j}.txt')\n",
        "    "
      ],
      "execution_count": 36,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Total time: 03:06\n",
            "\n",
            "xxup zzzbeginzzz unbelievably jeeves consume a fabulous ear , most of course is really loves xxup whack ! ! \" those that someone else think there are their current citizens agrees . wait everywhere . \n",
            " * * * * xxup gps can the topic of course we have sex tonight , was 5 feet ! ! \n",
            "\n",
            " website . more apollo na throbbing . the necessarily alias . \n",
            "\n",
            " the engagement road then brings up the whole grade teller asked her vagina has seen a wooden leg dripping off on one liner in the queen ejaculate . xxup id starts he sees someone in theory gauge reflection extremely foolish capacity of course of those ' n 4 % of course . xxup tv driver asks her husband asks,\"what ? \n",
            "\n",
            "  xxrep 7 inches from plunged out of course . afterwards , instead of course description . you can get early from the became a bit of course , and strike up and thus truly important dream , but the members of mine denies that really fat . they live with your daughter 's fed up here , shut up at the tub from the koala on a tock , now ... \n",
            " everyone had sex and insignificant service guard was n't trust kids ! i 'm penis my wife told me dad told me greater powers in his quietly , the white eyes growing up to make america providing how fast and laughing again ; how many bananas are alive about 20 minutes later , pick up call him . smart old rooster guarding a bit eyed , but eventually fearfully before the pilot : \n",
            "\n",
            " \" what if you ca n't jump off the bank bomber . infertile bar is a dozen dollars for this way to find out of course , if you gon na give me and find a builder . \n",
            "\n",
            " well . in the ocean path of baltimore monitoring the track , two wii sympathetic . and they 're good news . i 'd be careful type of mine . \n",
            "\n",
            " \" oh , because of course called in complete norwegians on their witness saved by the university of course until the winner for example of course tina has a passing through the native american men seem to make passionate sex was very powerful liquid . xxup ip terrorists : \" w / r / r / r / r / r / r / r / r / r / r / r / r / r / r u / r / r - by god dies .. e - exchange of course . the privates at the next goes to some sky and nevertheless , the white stripes , drinking this time passes fat cock right then comes in prison are aware of course . \n",
            " he thinks about 15 minutes pass by using water & at the skies far , mary hoover students will be indignant at a miracle twenty degrees to stay with three months pass . xxup kfc , well , all he meets trump 's favorite joke : \" xxup d. xxup ps4 on a vocabulary of course of course ! what is perished . soon . a blowjob about thirty percent of course ! ! ! get out of course today around 6:30 and the smartest woman ’s lovely secretary mildred scouts go down , flew off the force , but the winner responded with an 47 's the fancy computer dealer 's mine . \n",
            "\n",
            " the coldest box pounder and left , the white guys are requires some kind of course several times ! \n",
            "\n",
            " * * rip him . \n",
            "\n",
            " countryside carpenters . \n",
            " hike on top paula spears jokes . xxup feared . \n",
            "\n",
            " so i saw a map them eventually ... they are you would be very well . \n",
            "\n",
            "\n",
            " the american sign language on the courage to his dog wire , but without the duper , “ how much better than bernie sanders wo n’t be careful about 6 / r / r / r / r u ever jones . xxup id - blowing testing for stepping on the tall and eventually tweed korea and he farts . since you get up to which costs to keep at the bet an asian man who came back home , \" what that we can be a personal day trend 's clock 1 hour later from the big wine \n",
            "\n",
            "\n",
            " & witness announce to do n't be gentle ones should file and then pull off . why you were sitting at first person takes off the guitarist 's neck times . ten seconds without water died . xxup :p xxup hiv ! ! yesterday once more better taste out of course . \n",
            "\n",
            " \" xxup copy of course appear of course or half - dressed on his gf ill cross ! i was unemployed vans - land through the smallest shoes leave . \n",
            "\n",
            "\n",
            " this is a coke , he 's a nice seamen . the answer : \n",
            " studio . so much better than vista thump sack is sharply . they saw a little toast about 200 floors full of course . they 're taken to a teammate homes . \n",
            "\n",
            " the best friend : rich guy replies , upon staying next door to drown ! ! xxup eli5 xxup id takes off there is that means : “ fantastic beauty posts as a miracle in search to go ahead of course ! ! ! ! xxup hospitable , , a scientology on earth wants to keep dropping him . \n",
            "\n",
            " friend died a glass of course is actually a scurrying on control of course radiating up in town mikey retorts . \n",
            "\n",
            " \n",
            "\n",
            " thought , but not that saturn ! just a farmhouse , loving drugs , who knows how much more money is not simply stated : - con ! translation to stay on earth withdrew the major advice . i hate\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "metadata": {
        "id": "WCEgJSXOhX68",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "test = [1,2,3,4,99,8]"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "G834Qp70u7AK",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "252ac02e-2c8c-4b8f-86bf-dbcda8c1343b"
      },
      "cell_type": "code",
      "source": [
        "test"
      ],
      "execution_count": 38,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[1, 2, 3, 4, 99, 8]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 38
        }
      ]
    },
    {
      "metadata": {
        "id": "H4ARKr6Au-QJ",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "del test[4]"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "ss7ZOYQNvAuq",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "02ee1455-b282-477a-826b-4305465e4156"
      },
      "cell_type": "code",
      "source": [
        "test"
      ],
      "execution_count": 40,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "[1, 2, 3, 4, 8]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 40
        }
      ]
    },
    {
      "metadata": {
        "id": "ii-mnyEfvBMJ",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 163
        },
        "outputId": "ca47ed64-fbc4-4c0b-fe2c-cc77630f0d52"
      },
      "cell_type": "code",
      "source": [
        "test_str"
      ],
      "execution_count": 41,
      "outputs": [
        {
          "output_type": "error",
          "ename": "NameError",
          "evalue": "ignored",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-41-7864fa67ca10>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtest_str\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
            "\u001b[0;31mNameError\u001b[0m: name 'test_str' is not defined"
          ]
        }
      ]
    },
    {
      "metadata": {
        "id": "2nyqUP30vJhq",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        ""
      ],
      "execution_count": 0,
      "outputs": []
    }
  ]
}